/**************************************************************/
//enemy is our standard enemy class. there's multiple different kinds that can
//do damage and follow around the player
// Tyler Wozniak & Andrew Hall
/**************************************************************/

#pragma once
#include "imports.h"
#include "Unit.h"

class GameManager;

class Enemy: public Unit
{
private:
	bool seen; //Boolean representing if its seen
	GameManager* gameRef; //Pointer to current game. Doesn't get garbage collected cuz GameManager is singleton
public:
	Enemy(void);
	Enemy(const Enemy& other);
	Enemy operator=(const Enemy& other);
	Enemy(string enemyType, int x, int y);

	void defaultInit();
	void evaluateAI(GameManager* curGame);
	void attack(Unit* other);
	void move(int x,int y);
	void moveW();
	void moveE();
	void moveN();
	void moveS();
	void moveNW();
	void moveNE();
	void moveSW();
	void moveSE();
	void print(ostream& o) const;
	bool getSeen() const;
	void Seen();
	operator char() const;

	~Enemy();
};